home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Utilities / DVIM72-Mac 1.9.6 / source / explain_print_error.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-14  |  1.7 KB  |  68 lines  |  [TEXT/R*ch]

  1. #include <stdio.h>
  2. #include <PrintTraps.h>
  3. #include "mac-specific.h"
  4. #include "TextDisplay.h"
  5.  
  6. #define        printf    TD_printf
  7.  
  8. void Explain_print_error( OSErr the_error );
  9.  
  10. void
  11. Explain_print_error( OSErr the_error )
  12. {
  13.     char message[256];
  14.     char volname[256];
  15.     short        vrefnum;
  16.     ParamBlockRec    pb;
  17.     OSErr        err;
  18.     SysEnvRec    world;
  19.     
  20.     switch (the_error)
  21.     {
  22.         case iPrAbort:
  23.             printf("\nPrinting cancelled by user.\n");
  24.             break;
  25.         case dskFulErr:
  26.             err = SysEnvirons( 1, &world );
  27.             // vrefnum = (**g_print_rec_h).prJob.iFileVol;
  28.             pb.volumeParam.ioCompletion = NIL;
  29.             pb.volumeParam.ioNamePtr = (StringPtr) volname;
  30.             pb.volumeParam.ioVRefNum = world.sysVRefNum;
  31.             pb.volumeParam.ioVolIndex = 0;
  32.             err = PBGetVInfo( &pb, false );
  33.             if (err != noErr)
  34.                 BlockMove( "\punknown", volname, 8 );
  35.             // GetVol( (StringPtr)volname, &vrefnum );
  36.             (void) PtoCstr( (StringPtr) volname );
  37.             (void) sprintf( message,
  38.                 "There was not enough room on the disk '%s' for"
  39.                 " the spool file.  Free some space or print fewer pages.",
  40.                 volname );
  41.             Show_error( message );
  42.             break;
  43.         case tmfoErr:
  44.             Show_error( "Too many files open." );
  45.             break;
  46.         case wPrErr:
  47.         case vLckdErr:
  48.             Show_error( "Startup volume is write-protected, can't spool." );
  49.             break;
  50.         case iPrSavPFil:
  51.             Show_error( "Saving spool file." );
  52.             break;
  53.         case controlErr:
  54.             Show_error( "Unimplemented control instruction." );
  55.             break;
  56.         case iIOAbort:
  57.             Show_error( "I/O error while printing." );
  58.             break;
  59.         case iMemFullErr:
  60.             Show_error( "Not enough room in heap zone." );
  61.             break;
  62.         default:
  63.             (void) sprintf( message, "Printing error %d.", the_error );
  64.             Show_error( message );
  65.             break;
  66.     }
  67.     UnloadSeg( sprintf );
  68. }